home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO004.dsk
/
CHANGE.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
6KB
|
156 lines
10 REM << FILE CABINET >>
20 REM << CHANGE MODULE >>
30 REM << PRODOS VERSION >>
40 REM << MODIFICATION BY >>
50 REM << MICHAEL MOORE >>
60 REM << MAY 1984 >>
70 :
100 GOTO 8010
2000 REM << PRINTER SET UP >>>
2010 PRINT D$"PR#1": PRINT CHR$(18);: PRINT CHR$(27) + CHR$(70);
2020 ON PF GOTO 2030,2050
2030 PRINT CHR$(9)"80N";: PRINT CHR$(27) + CHR$(69): RETURN
2050 PRINT CHR$(9)"132N";: PRINT CHR$(15);: RETURN
2090 REM << PRINT SET UP >>>
2100 PRINT :L$ = "PRINT SET-UP CORRECT ": GOSUB 2510: IF YES = 1 THEN GOTO 2110
2105 IF YES = 0 THEN POP : GOTO 28010
2110 PRINT : INVERSE : PRINT TAB( 10)"TURN YOUR PRINTER ON" SPC( 10)" ": NORMAL : PRINT
2120 INPUT "PRESS <RETURN> WHEN READY...";R$: RETURN
2400 REM <<< INPUT CHOICE >>>
2410 PRINT L$"->":V = PEEK(37)::H = LEN(L$) +3
2420 VTAB V: HTAB H: CALL -868: INPUT "";R$:R = VAL(R$): CALL -958
2430 IF R <1 OR R >CHOICE THEN 2450
2440 PRINT : RETURN
2450 IF V = 23 THEN V = 22
2460 CALL -868: PRINT " ENTER NUMBER 1 THRU ";CHOICE: GOTO 2420
2480 IF SEP = 1 THEN RETURN
2482 HOME : PRINT : PRINT "SPACING FOR PRINTED FORMAT": PRINT
2483 PRINT TAB( 3)"<1> SKIP BLANK LINE BETWEEN RECORDS"
2484 PRINT TAB( 3)"<2> RECORDS PRINTED THEN BLANK LINE"
2485 PRINT TAB( 3)"<3> RECORDS PRINTED THEN BLANK LINE"
2486 PRINT TAB( 3)"<4> RECORDS PRINTED THEN BLANK LINE"
2487 PRINT TAB( 3)"<5> RECORDS PRINTED THEN BLANK LINE"
2489 PRINT : PRINT TAB( 7)"WHICH ->:";: CALL -868: INPUT "";LC
2490 IF LC <1 OR LC >5 THEN PRINT CHR$(7) + CHR$(7): GOTO 2480
2493 IF LC = 1 THEN LT = 30
2494 IF LC = 2 THEN LT = 40
2495 IF LC = 3 THEN LT = 45
2496 IF LC = 4 THEN LT = 48
2497 IF LC = 5 THEN LT = 50
2499 RETURN
2500 REM << OBTAIN YES/NO >>
2510 V = PEEK(37) +1
2515 PRINT L$" (Y/N)"
2520 IF V >23 THEN V = 23
2530 VTAB V: HTAB ( LEN(L$) +8): CALL -868: INPUT A$: IF A$ = "Y" THEN YES = 1: RETURN
2540 IF A$ = "N" THEN YES = 0: RETURN
2550 INVERSE : PRINT " PRESS 'Y' OR 'N'...": NORMAL : IF V = >23 THEN V = 22
2560 GOTO 2530
8000 REM <<< SEARCH DATA >>>>
8010 L = 0
8020 GOSUB 21010
8070 PRINT I" MAKE CHANGES": PRINT I +1" RETURN TO THE MENU."
8080 V = PEEK(37) +2
8090 VTAB V: CALL -868: INPUT "WHICH ->";S$:S = VAL(S$)
8100 X = 0: FOR I = 1 TO NH: IF LEN(H$(I)) >X THEN X = LEN(H$(I))
8110 NEXT I:X = X +1
8120 IF S <0 OR S >NH +2 THEN 8090
8125 ON (S < = NH) GOTO 8140: ON S -NH GOTO 10010,28010
8140 HOME
8150 PRINT "PLEASE ENTER THE "H$(S): PRINT "YOU WANT TO FIND....";: CALL 768,Q$
8160 HOME : VTAB 3: INVERSE : FLASH : PRINT "PATIENCE";: NORMAL : PRINT " - HAVE "NR" RECORDS TO CHECK...": PRINT
8162 FOR W = 1 TO 500: NEXT W: HOME
8165 IF PF THEN GOSUB 2100: HOME
8170 IF PF THEN GOSUB 2010
8180 FOR J = 1 TO NR:Y = R(J)
8190 N$(Y,0) = STR$(Y)
8200 IF LEN(Q$) >0 THEN 8230
8210 IF LEN(N$(Y,S)) = 0 THEN GOSUB 11010
8220 GOTO 8240
8230 IF LEFT$(N$(Y,S), LEN(Q$)) = Q$ THEN GOSUB 11010
8240 IF NOT PF AND L +NH >20 THEN GOSUB 9010
8250 IF LF THEN J = NR
8260 NEXT J
8270 L = 0: PRINT D$"PR#0"
8280 IF LF THEN LF = 0: HOME : GOTO 8300
8290 PRINT "THAT'S ALL OF THEM. ";
8300 PRINT "NOW YOU MAY:"
8310 PRINT "1 DO MORE SEARCHES"
8320 PRINT "2 MAKE CHANGES"
8330 PRINT "3 RETURN TO THE MAIN MENU"
8340 PRINT :L$ = "WHICH ":CHOICE = 3: GOSUB 2410:S = R
8350 ON S GOTO 8020,10010,28010
9010 IF (PF) OR (AR) THEN 9030
9020 PRINT "PRESS RETURN TO CONTINUE, ESC TO ABORT";: GOTO 9050
9030 LF = PEEK( -16384): POKE -16368,0
9040 ON LF = 141 GOTO 9050: ON LF = 155 GOTO 9070: GOTO 9090
9050 LF = PEEK( -16384): IF LF <128 THEN 9050
9060 POKE -16368,0
9070 IF LF = 155 THEN LF = 1: GOTO 9100
9080 IF LF < >141 THEN 9050
9090 LF = 0
9100 IF PF = 0 AND AR = 0 THEN PRINT :L = 0: HOME
9110 RETURN
10010 HOME : VTAB 5: PRINT "ENTER THE NUMBER OF THE RECORD TO"
10020 L$ = "CHANGE ":CHOICE = NR: GOSUB 2410:J = R:Y = R(J)
10030 HOME : GOSUB 11010
10040 PRINT : PRINT "ENTER THE NUMBER OF THE FIELD YOU WANT"
10050 L$ = "TO CHANGE ":CHOICE = NH: GOSUB 2410:S = R
10060 PRINT
10070 PRINT "FROM "H$(S)": "N$(Y,S)
10080 PRINT
10090 PRINT TAB( 3)"TO "H$(S)" :";: CALL 768,N$(Y,S)
10100 HOME : GOSUB 11010
10110 PRINT
10120 L$ = "MORE CHANGES ": GOSUB 2510: IF YES THEN GOTO 10010
10130 F$ = "INDEX": GOSUB 24010: GOTO 28010
11010 LT = 60: IF PF AND L = 0 THEN PRINT TAB( 8)DB$" DATA BASE";: POKE 36, LEN(DB$) +20: PRINT TD$: PRINT :L = L +2
11015 PRINT TAB( 4 +5 *(PF >1))H$(0);J
11020 FOR I = 1 TO NH
11030 POKE 36,5 *(PF >0) +1: PRINT I" "H$(I)":";: POKE 36,X +5 *(PF >0) +5: PRINT N$(Y,I)
11040 NEXT I
11050 PRINT
11060 L = L +NH +2
11070 IF PF AND (L +NH) >(LT -1) THEN PRINT CHR$(12):L = 0
11080 RETURN
21000 REM <<<SELECT FROM >>>
21010 HOME : PRINT "SELECT FROM:": PRINT
21020 IF MF = 0 THEN PRINT "0 "H$(0)
21030 FOR I = 1 TO NH: PRINT I" "H$(I): NEXT I: PRINT
21040 MF = 0
21050 RETURN
24010 NR$ = RIGHT$("00000" + STR$(NR),5)
24020 FF = 0: IF F$ < >"INDEX" THEN FF = 1
24030 Q$ = PB$ +FD$ +"/" +F$
24040 PRINT D$"OPEN"Q$: PRINT D$"WRITE"Q$
24050 PRINT NR$
24060 FOR J = 1 TO NR
24070 ON FF GOTO 24130
24080 Y = R(J)
24090 FOR I = 1 TO NH
24100 PRINT N$(Y,I)
24110 NEXT I
24120 GOTO 24140
24130 PRINT R$(J)
24140 NEXT J
24150 PRINT D$"CLOSE"
24160 FF = 0
24170 RETURN
28000 REM << RETURN TO MAIN PROGRAM >>>
28010 PRINT D$"CHAIN";PX$ +"MAIN"
61000 REM *********************
61010 REM FILE CABINET
61020 REM PRODOS
61030 REM ---------------------
61040 REM CONVERTED BY
61050 REM MICHAEL MOORE
61060 REM MAY 1984
61070 REM =====================
61080 REM BASED ON
61090 REM FILE CABINET-MACH 5
61100 REM BY ED AYMOND
61110 REM AND BOB MATZINGER
61120 REM AS MODIFICATION
61130 REM OF EARLIER VERSIONS
61140 REM *********************
61150 REM APPLE CORPS OF DALLAS